\documentclass{scrartcl}
\usepackage[utf8]{inputenc}


\title{Semesterprojekt Satellitenprogrammierung - Schritt 2}
\author{Maxim Bendiks, Christopher Hopp, Alexander Hrusovski,\\ Sebastian Klemp, Niklas Krafczyk}

\begin{document}
\maketitle


\section*{EGSE}
Unsere Implementierung der EGSE besteht aus einem User- und Satellite Interface sowie einem Input Watcher. Diese stellen dem Benutzer verschiedene Daten des Satelliten zur Verfügung und bieten ihm die Möglichkeit den Satelliten zu steuern. Bei der Signalübertragung zwischen Satelliten und unserer EGSE unterscheiden wir dabei zwischen Statusdaten und Nachrichten.


\subsection*{Statusdaten}
Die Statusdaten enthalten wichtige Informationen über den Satelitten, wie Standortdaten und Temperatur, und werden deshalb immer benötigt, sei es aus Überwachungs- oder Protokollierungsgründen. Deswegen werden sie ohne Aufforderung der EGSE an diese verschickt. Dies vereinfacht und beschleunigt den Kommunikationsprozeß, bei gleichzeitig geringerem Datentraffic. Es ist allerdings möglich, diesen Datenverkehr zu stoppen.


\subsection*{Nachrichten}
Nachrichten stellen das allgemeine Kommunikationsprotokoll bereit. Sie dienen der Anforderung und Übertragung von Daten. Da viele Informationen nur zu bestimmten Zeitpunkten von Interesse sind, können diese mittels Nachrichten vom Satelliten angefordert werden. Ebenso dienen Nachrichten zum Steuern des Satelliten, in dem man dessen Zustände verändert.


\subsection*{Satellite Interface}
Das Satellite Interface bildet die Schnittstelle zwischen der EGSE und dem Satelliten. Es ist für das Empfangen und senden von Nachrichten an den Satelliten zuständig, kapselt dabei also größtenteils das Protokoll zur Steuerung des Satelliten.


\subsection*{User Interface}
Das User Interface bildet zusammen mit dem Input Watcher die Schnittstelle zwischen Benutzer und EGSE. Es arbeitet eng verknüpft mit dem Satellite Interface, um die Daten des Satelliten zu beziehen. Diese werden für den Benutzer aufbereitet und ergonomisch dargestellt. Dadurch hat der Benutzer alle wichtigen Informationen auf einen Blick parat, was die Arbeit ungemein vereinfacht. Anders als die Steuerung des Satelliten erfolgt der Empfang der Statusdaten vom Satelliten nicht über das Satellite Interface sondern direkt, was die Strukturen innerhalb der EGSE vereinfacht.
Eine besondere Herausforderung war es, allgemeine Strukturen bereitzustellen, die es ermöglichen die Statusdaten zu beschreiben und Methoden zur Anpassung des User Interfaces anhand dieser Beschreibungen zu entwickeln. Mit diesen Strukturen ist es möglich, die Struktur der Statusdaten zu ändern, ohne den Sourcecode des User Interfaces antasten zu müssen.
Zur Zeit werden folgende Daten mit dem User Interface dargestellt:

\begin{itemize}
  \item ein Titel
  \item eine Statusnachricht
  \item die aktiven Knoten, wobei der aktuelle Worker markiert ist
  \item alle Daten, die der Satellite als Statusdaten bereitstellt
  \item eine Legende, die Erklärungen zur Steuerung des Satelliten per Tastatureingabe gibt
  \item einen Reply, als Feedback zur Benutzereingabe
\end{itemize}


\subsection*{Input Watcher}
Der Input Watcher ermöglicht es dem Nutzer, der EGSE Kommandos zu senden. Diese werden dann weiterverarbeitet und meist in Kommandos an den Satelliten übersetzt.

\setcounter{section}{1}
\section{Implementierung der EGSE}
Es waren uns folgende Aufgaben zum Implementieren gegeben:

\subsection{Housekeeping sammeln und ausgeben}
Housekeepingdaten, die im Satellit anfallen werden über Topics an die EGSE gesendet. Dazu wird eine eine Datenstruktur benötigt, die noch in einer Datei des Sourcecodes definiert und beschrieben werden muss. Diese Datenstruktur wird dann über ein Topic an die EGSE gesendet, die aus der Beschreibung der Struktur den Aufbau der Daten analysiert, im User Interface entsprechende Beschriftungen darstellt und die Daten jedes Datensatzes entsprechend darstellt.


\subsection{Kommandos senden}
Es ist nun möglich, mithilfe der EGSE Kommandos an den Satelliten zu senden. Dabei haben wir ein allgemeines, sehr einfaches Protokoll entwickelt, dass es uns erlaubt, verschiedene Kommandos an einzelne oder alle Knoten des Satelliten zu senden und dabei noch nötige Parameter zu übertragen. Es lassen sich folgende Ergebnisse durch die bisher implementierten Kommandos erwirken:

\begin{itemize}
  \item Sammeln folgender Informationen über die Knoten des Satelliten:
  	\begin{itemize}
  	  \item Anzahl
  	  \item IDs
  	  \item Rolle
  	  \item Status
  	\end{itemize}
  \item Rollenänderung eines bestimmten Knotens
  \item Moduswechsel des Satelliten (bisher nur ein Modus vorhanden)
  \item Änderung der Frequenz der Housekeepingdaten sowie komplettes unterbinden derer Sendung
\end{itemize}


\end{document}